<?php

/**
 * chciałbym zasymulowac dzialanie adresow ajaxowe crud tak jak jest w chw tylko ze w zendzie
 * @author damian 02-10-2012
 */
class Application_Form_AdresAjax extends Zend_Form
{

	public $url='';
	public $walidacja_komunikaty='';
	
	public function __construct($url='')
	{
		parent::__construct(); //istotne
		
		$this->url=$url;
	}
	
    public function init()
    {
    	$this->setMethod('post');
        $this->setAction($this->url);                                   
        $this->addElement('text', 'miasto', array('label' => 'miasto: '));
		$this->addElement('text', 'numer', array('label' => 'numer: '));
        
		
		#
        # MIASTO
        #
     
        # reguly logkiki:
        # nie moze być puste , 
        # moze skladac sie tylko z liter,
        # moze skladac sie min 3 max 40 znakow

 			$miasto= new Zend_Form_Element_Text('miasto',array('label'=>'miasto: ')); $miasto= new Zend_Form_Element_Text('miasto',array('label'=>'miasto: '));		
        	# dodawanie filtru z wykorzystaniem wzorca STRATEGIA
        	$miasto->addFilter( new Zend_Filter_Alpha());// filtr wycina wszystkie znaki poza literami
        
        	# przykład uzycia walidatora
        	$validator_not_empty = new Zend_Validate_NotEmpty();
        	$validator_not_empty->setMessage(array(Zend_Validate_NotEmpty::IS_EMPTY=>'Nie podano wartosci.'));
        	 //$element->getValidator('NoEmpty')->setMessages( array(Zend_Validate_NotEmpty::IS_EMPTY=>'Tytul nie moze byc pusty.')); // inna metoda
        	$miasto->addValidator( $validator_not_empty );
	       
	        # w set message ustawiajac komunikaty przyjmuje tablice klucz to nazwa sprawdzanej rzeczy - stala val- komunikat.
	        
	        $validator_2 = new Zend_Validate_StringLength();
	        $validator_2->setMin(4);
	        $validator_2->setMessage(array(Zend_Validate_StringLength::TOO_SHORT=>'Podana nazwa jest z krotka.'));
	        
	        $validator_3 = new Zend_Validate_StringLength();
	        $validator_3->setMax(40);
	        $validator_3->setMessage(array(Zend_Validate_StringLength::TOO_LONG=>'Podana nazwa jest zadluga.'));
	        
	    	$miasto->addValidator( $validator_2 );
        	$miasto->addValidator( $validator_3 );
	    # dodanie miasta do formularza
	    $this->addElement($miasto);
        
		
		#
        # ULICA
        #
        $ulica= new Zend_Form_Element_Text('ulica',array('label'=>'ulica: '));

        # reguly logkiki - nie moze być puste , moze skladac sie min 3 max 40 znakow
      
     		$ulica->addValidator( $validator_not_empty );
     		$ulica->addValidator( $validator_2 );
     		$ulica->addValidator( $validator_3 );
     
        $this->addElement($ulica);
        
        
        $this->addElement('submit', 'submit', array('label' => 'Zapisz', 'name' => 'zatwierdz' ));
    }

}